DEDUPLICATION یکی از قابلیتهای جدید
اوراکل در نسخه 11g است که همراه با SECUREFILE LOBها ارائه شد و می توان بعد از ایجاد جدول هم این قابلیت را برای SECUREFILE LOBها فعال کرد اما سوال مهمی که در این زمینه مطرح می شود آن است که DEDUPLICATION برای LOBهای موجود چقدر فضا آزاد می کند؟
در اوراکل نسخه 23c، تابعی در این زمینه ارائه شد که می تواند تا حدودی به این سوال پاسخ دهد. این تابع نام جدول(و یا نام پارتیشنی از جدول) را دریافت می کند و حداکثر 100 هزار رکورد از آن جدول را بررسی کرده و نهایتا
تخمینی از میزان ذخیره سازی فضا را ارائه می کند.
در ادامه، سناریوی تستی را در این زمینه می بینید.
SQL> create table tbl (id number,describe clob);
Table created
در این جدول اطلاعاتی را درج می کنیم که بیشتر آن تکراری هستند:
SQL> begin 2 for i in 1 .. 70000 loop 3 insert into tbl 4 values 5 (1, 6 lpad('www.usefzadeh.com', 7 1000000000000000000000000000000000000000000000000000000000000000000000000000000000, 8 'a')); 9 end loop; 10 insert into tbl values (2, 'Ramtollah Rabbani'); 11 insert into tbl values (3, 'Armin Bahamin'); 12 insert into tbl values (4, 'Jamshid Khan'); 13 commit; 14 end; 15 /
PL/SQL procedure successfully completed
تعداد رکوردهای جدول:
SQL> select count(*) from tbl; COUNT(*)
---------- 70003
برای محاسبه تخمین میزان فضای
صرفه جویی شده پس از DEDUPLICATION، تابع dbms_lob.GET_LOB_DEDUPLICATION_RATIO را اجرا می کنیم:
SQL> set serverout on
SQL> DECLARE dedup_ratio n تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید
برچسب : نویسنده : خنجی niksaleh بازدید : 26 تاريخ : يکشنبه 17 دی 1402 ساعت: 16:28